import { ipcMain, IpcMainEvent, BrowserWindow, shell, clipboard,dialog,Notification } from "electron";

/**
 * 窗口最小化
 */
ipcMain.on("minimizewindow", (event: IpcMainEvent) => {
  // 获取那个窗口发送的消息
  const win = BrowserWindow.fromWebContents(event.sender);
  // 不为空的时候执行
  if (win) {
    // 验证当前窗口是否为最小状态
    if (!win.isMinimized()) {
      // 让当前窗口最小化
      win.minimize();
    }
  }
});
/**
 * 最小化窗口
 */
ipcMain.on("maximizewindow", (event: IpcMainEvent) => {
  // 获取那个窗口发送的消息
  const win = BrowserWindow.fromWebContents(event.sender);
  // 不为空的时候执行
  if (win) {
    // 验证窗口是否为最大化
    if (!win.isMaximized()) {
      // 让窗口最大化
      win.maximize();
    } else {
      // 让当前窗口回到原始状态
      win.restore();
    }
  }
});
/**
 * 关闭窗口
 */
ipcMain.on("closethewindow", (event: IpcMainEvent) => {
  // 获取那个窗口发送的消息
  const win = BrowserWindow.fromWebContents(event.sender);
  // 不为空的时候执行
  if (win) {
    win.close();
  }
});
/**
 * 打开链接
 */
ipcMain.on("openurl", (event: IpcMainEvent, url: string) => {
  // 不为空的时候执行
  if (event && url) {
    shell.openExternal(url);
  }
});

/**
 * 复制内容
 */
ipcMain.on("copycontent", (event: IpcMainEvent, text: string) => {
  // 不为空的时候执行
  if (event && text) {
    // 写入
    clipboard.writeText(text)
  }
  else{
    dialog.showErrorBox("提示", "未获取到可以复制的内容")
  }
});

/**
 * 窗口移动
 */
ipcMain.on("mousedown", (event: IpcMainEvent, data) => {
  // 获取那个窗口发送的消息
  const win = BrowserWindow.fromWebContents(event.sender);
  if (win)
    win.setPosition(data.appX,data.appY)
});

/**
 * 发送一条系统消息
 * @param title 标题
 * @param body 提示内容
 */
ipcMain.on("openWindowMessage", (event: IpcMainEvent,title: string, body: string) => {
  if (event){
    new Notification({
      title:title,
      body:body,
    }).show()
  }
});
